Authentication এবং Authorization এর মধ্যে পার্থক্য
ওয়েব ডেভেলপমেন্টে Authentication এবং Authorization দুটি গুরুত্বপূর্ণ কনসেপ্ট, যা একে অপরের সাথে সম্পর্কিত হলেও তাদের কাজ আলাদা। সঠিকভাবে এগুলোর ব্যবহারে নিরাপদ এবং কার্যকরী ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব। আসুন, আমরা এই দুটি কনসেপ্টের মধ্যে পার্থক্য এবং তাদের কাজের বিশদভাবে আলোচনা করি।
1. Authentication (সত্যতা যাচাই)
Authentication হলো প্রক্রিয়া যার মাধ্যমে কোনো ব্যবহারকারীকে শনাক্ত করা হয় এবং নিশ্চিত করা হয় যে সে সেই ব্যক্তি যাকে সে দাবি করছে। এটি ব্যবহারকারীর পরিচয় যাচাই করার প্রক্রিয়া। সাধারনত, ইউজারনেম এবং পাসওয়ার্ড ব্যবহার করে authentication করা হয়, কিন্তু আরও উন্নত সুরক্ষা ব্যবস্থা যেমন Two-Factor Authentication (2FA), Biometric (ফিঙ্গারপ্রিন্ট, ফেস রিকগনিশন) ব্যবহার করা হতে পারে।
Authentication এর কাজ:
- ব্যবহারকারী লগইন করার সময় তার তথ্য যাচাই করা হয়।
- ইউজারনেম এবং পাসওয়ার্ডের সাহায্যে ব্যবহারকারীকে শনাক্ত করা হয়।
উদাহরণ:
const users = {
"user1": "password123",
"user2": "mypassword"
};
function authenticate(username, password) {
if (users[username] && users[username] === password) {
return true; // Authentication successful
}
return false; // Authentication failed
}
এখানে, authenticate ফাংশন ইউজারের নাম এবং পাসওয়ার্ড যাচাই করছে।
2. Authorization (অনুমোদন)
Authorization হলো প্রক্রিয়া যা ব্যবহারকারীকে নির্দিষ্ট রিসোর্স বা সেবা অ্যাক্সেস করতে অনুমতি দেয়। একবার authentication সম্পন্ন হলে, পরবর্তী কাজ হলো তার অনুমোদন নির্ধারণ করা—কোনো নির্দিষ্ট রিসোর্স বা কাজ তার জন্য অ্যাক্সেসযোগ্য কিনা। এটি সাধারণত ইউজারের ভূমিকা বা অধিকার (role-based access control) বা নির্দিষ্ট অনুমতি (permissions) এর উপর ভিত্তি করে কাজ করে।
Authorization এর কাজ:
- নির্ধারণ করা যে ব্যবহারকারী কোন রিসোর্সে প্রবেশ করতে পারবে এবং কোন কাজে অংশগ্রহণ করতে পারবে।
- সাধারণত, ব্যবহারকারীর role (যেমন অ্যাডমিন, মেম্বার, গেস্ট) অথবা permission এর ভিত্তিতে authorization দেওয়া হয়।
উদাহরণ:
const roles = {
"user1": "admin",
"user2": "guest"
};
function authorize(username) {
if (roles[username] === "admin") {
return "Access granted to admin resources.";
}
return "Access denied.";
}
এখানে, authorize ফাংশন ব্যবহারকারীর role যাচাই করছে এবং অ্যাডমিন রিসোর্সে প্রবেশের অনুমতি দিচ্ছে।
Authentication এবং Authorization এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Authentication | Authorization |
|---|---|---|
| কাজ | ব্যবহারকারীকে শনাক্ত করা | ব্যবহারকারীকে কী কী অ্যাক্সেস দেওয়া হবে তা নির্ধারণ করা |
| উদাহরণ | ইউজারনেম এবং পাসওয়ার্ড দিয়ে লগইন করা | ইউজারের রোল (অ্যাডমিন, মেম্বার) দিয়ে রিসোর্স অ্যাক্সেস নির্ধারণ করা |
| যাচাইয়ের উপকরণ | ইউজারনেম, পাসওয়ার্ড, বা বায়োমেট্রিক তথ্য | ব্যবহারকারীর রোল বা পারমিশন |
| এটি কি? | ব্যবহারকারীর পরিচয় যাচাই | ব্যবহারকারীকে অনুমতি দেওয়া |
Authentication এবং Authorization এর কার্যপদ্ধতি
একটি ওয়েব অ্যাপ্লিকেশন বা সিস্টেমে এই দুটি প্রক্রিয়া একে অপরের পরিপূরক হিসেবে কাজ করে:
- Authentication প্রক্রিয়া:
- ব্যবহারকারী প্রথমে লগইন ফর্মে তার ইউজারনেম এবং পাসওয়ার্ড প্রদান করে।
- সিস্টেম তার পরিচয় যাচাই করার জন্য এই তথ্য চেক করে এবং সফল হলে ব্যবহারকারীকে সিস্টেমে প্রবেশের অনুমতি দেয়।
- Authorization প্রক্রিয়া:
- একবার authentication সফল হলে, সিস্টেমের backend authorization চেক করে, অর্থাৎ কোন রিসোর্স বা ফিচার ব্যবহারকারী দেখতে বা সম্পাদনা করতে পারবে।
- সিস্টেম ব্যবহারকারীর রোল বা পারমিশন অনুযায়ী বিভিন্ন রিসোর্সে প্রবেশাধিকার নির্ধারণ করে।
বাস্তব জীবনের উদাহরণ
ধরা যাক, আপনি একটি ওয়েব অ্যাপ্লিকেশনে লগইন করতে চান:
- Authentication:
- প্রথমে, আপনার ইউজারনেম এবং পাসওয়ার্ড প্রয়োজন, যা যাচাই করার মাধ্যমে সিস্টেম নিশ্চিত করবে যে আপনি সেই ব্যক্তি, যিনি আপনার অ্যাকাউন্ট তৈরি করেছেন। এটি authentication।
- Authorization:
- আপনি যদি অ্যাডমিন হন, তাহলে আপনাকে সম্পূর্ণ অ্যাক্সেস দেওয়া হবে। যদি আপনি একজন সাধারণ সদস্য হন, তবে আপনি শুধু কিছু নির্দিষ্ট রিসোর্স (যেমন আপনার নিজের প্রোফাইল) দেখতে পারবেন, তবে অ্যাডমিন ফিচারগুলো অ্যাক্সেস করতে পারবেন না। এটি authorization।
Authentication এবং Authorization এর জন্য প্রযুক্তি
- JWT (JSON Web Token):
- এটি একটি স্ট্যান্ডার্ড এবং নিরাপদ পদ্ধতি যা authentication এবং authorization উভয়ের জন্য ব্যবহৃত হয়। এটি টোকেন ভিত্তিক সিস্টেমে কাজ করে এবং সার্ভার একবার authentication করার পর, ব্যবহারকারীকে একটি টোকেন প্রদান করে যাতে তিনি পরবর্তী রিকোয়েস্টগুলিতে সেই টোকেন ব্যবহার করে authorization পেতে পারেন।
- OAuth 2.0:
- এটি authorization এর জন্য একটি জনপ্রিয় প্রোটোকল যা ব্যবহারকারীকে তাদের কাস্টম অ্যাপ্লিকেশনে তৃতীয় পক্ষের সার্ভিস (যেমন গুগল, ফেসবুক) দিয়ে authentication করতে সাহায্য করে এবং তাদের রিসোর্স অ্যাক্সেস করার অনুমতি দেয়।
- Role-Based Access Control (RBAC):
- RBAC একটি পদ্ধতি যেখানে ব্যবহারকারীর রোলের ভিত্তিতে সিস্টেমের বিভিন্ন রিসোর্সে অ্যাক্সেস দেওয়া হয়। এটি authorization প্রক্রিয়ায় ব্যবহৃত হয়।
সারাংশ
Authentication এবং Authorization ওয়েব সিকিউরিটি সিস্টেমের দুটি অত্যন্ত গুরুত্বপূর্ণ দিক। প্রথমে, authentication ব্যবহারকারীর পরিচয় যাচাই করে, এরপর authorization ব্যবহারকারীর অনুমোদিত অ্যাক্সেস নির্ধারণ করে। এই দুটি প্রক্রিয়া একত্রে ব্যবহার করে সিস্টেমে নিরাপত্তা এবং সঠিক রিসোর্স ব্যবস্থাপনা নিশ্চিত করা হয়।
Read more